<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        class Person{
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
            //自身的静态属性和方法
            static say(){
                console.log('say');
            }
            static eyeColor = 'black'

            // 原型对象上的方法
            jump(){
                console.log('jump')
            }
            sex = 'nan'
        }
        console.dir(Person);
        // console.log()

        class Son extends Person{
            constructor(name,age){
                super(name,age);
            }
            // 子类静态方法中能继承父类的静态方法
            static say_son(){
                super.say();
                // super.jump();//报错
            }
            // 子类原型对象上的方法中能继承父类原型对象的方法
            jump_son(){
                super.jump();
                // super.say();//报错
            }
        }

      /*   class Son1 {
            constructor(name,age){
                this.name = name;
                this.age = age;
            }
        } */

        let tom = new Son('tom',10);
        console.log(tom);
        console.dir(Son);
        Son.say_son();
        tom.jump_son();

        /* class类继承：通过extends进行继承，super进行接收
        继承过程：
        子类中的constructor继承父类中的constructor通过super，super是函数
        子类静态方法中能继承父类的静态方法，通过super进行调用  super是对象
        子类原型对象上的方法中能继承父类原型对象的方法 通过super进行接收 super是对象
        
        
        
        
        */
    </script>
</body>
</html>